import Vue from 'vue'
import Vuex from 'vuex'
import router from '@/router'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // tags数组
    tags: []
  },
  mutations: {
    pushtags(state, val) {
      // 如果等于 -1 说明 tabs 不存在那么插入，否则什么都不做
      // findindex 找角标，循环判断一下，如果等于那么就代表有相同的，就不必添加，如果找不到那就是 -1，就添加进 tags 数组
      if (val.name === 'Home') return
      let result = state.tags.findIndex(item => item.name === val.name)
      result === -1 ? state.tags.push(val) : ''
    },
    // 关闭标签
    closeTab(state, val) {
      // 同上，找角标，然后用角标的位置对应删除一位。splice：这是数组的删除方法
      let result = state.tags.findIndex(item => item.name === val.name)
      state.tags.splice(result, 1)
    },
    // 关闭所有 tagsview 标签
    cleartagsview(state, val) {
      // 清空数组
      state.tags = []
      // 跳转到首页，val 接受传过来的当前路由
      if (val !== '/home') {
        router.push({ path: '/home' })
      }
    }
  },
  actions: {},
  modules: {}
})
